package process2

import "fmt"

// 定义为全局变量
var (
	UserMgrs *UserMgr
)

type UserMgr struct {
	onlineUsers map[int]*UserProcess
}

// 完成对userMgr 的初始化工作
func init() {
	UserMgrs = &UserMgr{
		onlineUsers: make(map[int]*UserProcess, 1024),
	}
}

func (this *UserMgr) AddOnlineUser(up *UserProcess) {
	this.onlineUsers[up.UserId] = up

}

func (this *UserMgr) DelOnlineUser(userId int) {
	delete(this.onlineUsers, userId)
}

// 返回当前所有在线的用户
func (this *UserMgr) GetAllOnlineUser() map[int]*UserProcess {
	return this.onlineUsers
}

// 根据id 返回userProcess
func (this *UserMgr) GetOnlineUserById(userId int) (up *UserProcess, err error) {

	// 如何从map取出一个值，待检测的方式
	up, ok := this.onlineUsers[userId]
	if !ok {
		err = fmt.Errorf("用户%d不存在\n", userId)
	}
	return

}
